package com.smartao.base.department;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.smartao.core.service.BaseService;

@Transactional(readOnly = true)
public interface DepartmentService extends BaseService<Department, Long> {

	public Department findRoot();
	
	public Department findRoot(Long dimensionId);
	
	public List<Department> getAllChild(Department department);

	public List<Department> getAllChild(Long departmentId);

	public List<Department> getDirectChild(Department department);

	public List<Department> getDirectChild(Long departmentId);

	public List<Department> getPath(Department department);
	
	public List<Department> getPath(Long departmentId);
	
	public String getPathString(Department department);
	
	public String getPathString(Long departmentId);
	
	public Long getDierctChildCount(Long id);

	public Long getDierctChildCount(Department department);

}
